package v1

// 实现此方法获取插件实体
type NewPluginAssembler func() PluginAssembler

// Assembler插件实现该接口
type PluginAssembler interface {
	BeatPlugin
	//config是插件的配置，配置格式需自定义，一般使用json格式。
	NewAssembler(config []byte) (Assembler, error)
}

// Assembler 组装器接口
type Assembler interface {
	Assemble(dataB DataB) ([]DataC, error)
}

type DataC interface {
	GetPayload() []byte
	GetMetaByKey(key string) (any, bool)
}

// DataC实现
// type AssembledData struct {
// 	Meta map[string]any
// 	Data []byte //组装后的数据
// }

// func (ad *AssembledData) GetData() []byte {
// 	return ad.Data
// }
// func (ad *AssembledData) GetMetaData() map[string]any {
// 	return ad.Meta
// }
